[% setvar title The Perl 6 Summary for the week ending 2005-07-05 %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='The Perl 6 Summary for the week ending 2005-07-05'></a><h1>The Perl 6 Summary for the week ending 2005-07-05</h1>
<a name='The Perl 6 summary for the week ending 2005-07-05'></a><h1>The Perl 6 summary for the week ending 2005-07-05</h1>
<p>My, doesn't time fly? Another fortnight gone and another summary to write. It's
a hard life I tell you!</p>
<a name='This week in perl6-compiler'></a><h1>This week in perl6-compiler</h1>
<a name='Where's everyone gone?'></a><h2>Where's everyone gone?</h2>
<p>It seems that most of the Perl 6 compiler development is being discussed at
Hackathons and IRC, and summarized in developers' weblogs. What's a summarizer
to do? For now, I'll point you at Planet Perl 6, which aggregates a bunch of
relevant blogs.</p>
<p><a href='http://planetsix.perl-foundation.org/' target='_blank'>planetsix.perl-foundation.org</a></p>
<a name='PGE now supports grammars, built-in rules'></a><h2>PGE now supports grammars, built-in rules</h2>
<p>Allison Randal raved about the &quot;totally awesome&quot; PGE grammar support. I doubt
she's alone in her enthusiasm.</p>
<p><a href='http://groups.google.com/groups?threadm=b7a12d0375515a6b4381efe3d71ef61e@perl.org' target='_blank'>groups.google.com</a></p>
<a name='Multiple implementations are good, m'kay?'></a><h2>Multiple implementations are good, m'kay?</h2>
<p>Patrick discussed the idea of a 'final' Perl 6 compiler, pointing out that it
isn't clear that there needs to be a &quot;final&quot; compiler. So long as multiple
implementations are compatible...</p>
<p><a href='http://groups.google.com/groups?threadm=20050702165140.GH5089@pmichaud.com' target='_blank'>groups.google.com</a></p>
<a name='Meanwhile, in perl6-internals'></a><h1>Meanwhile, in perl6-internals</h1>
<a name='New calling conventions'></a><h2>New calling conventions</h2>
<p>Klaas-Jan Stol asked a bunch of questions about the new calling conventions and
Leo answered them.</p>
<p><a href='http://groups.google.com/groups?threadm=42C16B5A.7040101@home.nl' target='_blank'>groups.google.com</a></p>
<a name='Parrot Segfaults'></a><h2>Parrot Segfaults</h2>
<p>What's a tester to do? You find a bug that makes Parrot dump core, so you write
a test to document the bug and make sure it gets fixed. But the test leaves
core files lying about. It goes without saying that Parrot should never dump
core without the active assistance of an NCI call or some other unsafe call
blowing up in its face.</p>
<p>Which makes it a little embarrassing that PIR code generated by Pugs can cause
a parrot segfault, though that appears to have been caused by mixed up calling
convention style in the generated call.</p>
<p><a href='http://groups.google.com/groups?threadm=200506291354.19610.parrot@jensbeimsurfen.de' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?threadm=1120142239.14968.20.camel@wombat.dlib.indiana.edu' target='_blank'>groups.google.com</a> - Brian Wheeler's
segfaulting Pugs script</p>
<a name='Python PMCs'></a><h2>Python PMCs</h2>
<p>Leo pointed out that the various <b><i>dynclasses/py*.pmc</i></b> parrot support PMCs
don't yet support all the semantics that Python needs. He outlined some
outstanding issues announced that, as calling conventions and context handling
were changing he'd be turning off compiling <b><i>py*.pmc</i></b> for the time being.</p>
<p><a href='http://groups.google.com/groups?threadm=42C395FE.7010701@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name='PGE bug'></a><h2>PGE bug</h2>
<p>It appears that the upcoming changes in Parrot's context handling tweak a bug
in PGE. The discussion moved onto a discussion of PGE's implementation
strategy, Nicholas Clark was keen to make sure it didn't repeat some of the
Perl 5's regex engine's infelicities. While this discussion continued, Leo
spent half a day with gdb and tracked down the problem, which turned out to be
that a register wasn't getting initialized in the right place.</p>
<p><a href='http://groups.google.com/groups?threadm=42C40534.1000102@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name='Left-recursive grammars are bad m'kay?'></a><h2>Left-recursive grammars are bad m'kay?</h2>
<p>While experimenting with PGE grammars, Will Coleda managed to write a
left-recursive grammar that blew Parrot's call stack with impressive ease. Luke
apologized for things blowing up so spectacularly, but pointed out that
left-recursive grammars weren't supported, and showed a rewritten grammar that
didn't have the same problem (but which doesn't appear to match the same
expressions).</p>
<p><a href='http://groups.google.com/groups?threadm=rt-3.0.11-36437-116436.17.8864180085717@perl.org' target='_blank'>groups.google.com</a></p>
<a name='Coroutines'></a><h2>Coroutines</h2>
<p>Leo pointed to a summary of coroutines, and noted that we still hadn't defined
the syntax of Parrot coroutines, especially with respect to argument
passing. He discussed it with Matt Fowles and solicited a set of tests that
expressed the semantics they came up with.</p>
<p><a href='http://groups.google.com/groups?threadm=ebb4ed649916ee6a195be937c1921d48@toetsch.at' target='_blank'>groups.google.com</a></p>
<p><a href='ftp://ftp.inf.puc-rio.br/pub/docs/techreports/04_15_moura.pdf'>ftp.inf.puc-rio.br</a></p>
<a name='ParTcl, Perl6 Grammars'></a><h2>ParTcl, Perl6 Grammars</h2>
<p>Will Coleda announced that, thanks to Matt Diephouse's work, ParTcl (Tcl on
Parrot) is now able to run part of tcl's cvs-latest test suite. The tests
aren't fully native yet, they're currently driven through a Perl test harness
and only passing 10% of the tests, but hopefully the situation will improve and
ParTcl will end up able to run the tests completely natively (while passing far
more of them). Congratulations on the work so far though.</p>
<p><a href='http://groups.google.com/groups?threadm=D1E396F5-6AE6-43D3-B0A0-08CC710DBA6C@coleda.com' target='_blank'>groups.google.com</a></p>
<a name='Python and Parrot'></a><h2>Python and Parrot</h2>
<p>Kevin Tew popped up to say that he too is working on a Python compiler
targetting parrot and wondered how to handle things like Python's <code>self</code>
parameter. Michal Wallace and Leo chipped in with suggestions.</p>
<p><a href='http://groups.google.com/groups?threadm=42C51CCB.7010008@tewk.com' target='_blank'>groups.google.com</a></p>
<a name='Another month, another release'></a><h2>Another month, another release</h2>
<p>Has it really been a month? Seems so. Parrot walked through the traditional
feature freeze, code freeze before being released on Sunday. The latest
release is called 'Geeksunite', referencing the website that discusses Chip's
problems with his former employer. You should definitely visit the Geeksunite
site -- Chip needs our help.</p>
<p><a href='http://groups.google.com/groups?threadm=42C7C447.8000302@toetsch.at' target='_blank'>groups.google.com</a></p>
<p><a href='http://geeksunite.org/' target='_blank'>geeksunite.org</a> -- Support your local Pumpking</p>
<a name='lower in default find_name scope'></a><h2><code>lower</code> in default find_name scope</h2>
<p>Patrick posted a code fragment whose output surprised him -- it turned out that
looking up &quot;lower&quot; as a name in the default scope returns an NCI object. Leo
explained why this was so, prompting Patrick to suggest that it would be useful
if, somewhere in the Parrot documentation there was some descriptions of
Parrot's builtin namespace. Leo encourage others to comment on namespace
issues, and hoped for some decisions as  well.</p>
<p><a href='http://groups.google.com/groups?threadm=20050702012449.GA25256@pmichaud.com' target='_blank'>groups.google.com</a></p>
<a name='Copyrights'></a><h2>Copyrights</h2>
<p>If you're like me, discussion of copyrights an licenses is the sort of thing
that either really winds you up, or induces serious drowsiness depending on
your mood as you read the thread. It's one of those &quot;Too important not to think
about, but too tedious to think about any more than is absolutely necessary&quot;
topics. That said, Will Coleda said that he had thought that all of Parrot's
code was supposed to have its copyright assigned to the Perl
Foundation. However, on inspection he noticed a multiplicity of copyright
notices in the actual code, including one file in the repository with a
Microsoft copyright.</p>
<p><a href='http://groups.google.com/groups?threadm=FECF197F-DEF8-4E4F-8FE9-EE0B2036516E@coleda.com' target='_blank'>groups.google.com</a></p>
<a name='PGE: Code blocks'></a><h2>PGE: Code blocks</h2>
<p>Matt Diephouse wondered about the plan for integrating code blocks into PGE. He
thought it'd be nice to be able to specify a compiler to use along with the
code block (or, for the time being, just to be able to use PIR code). Patrick
said that there is a plan (or several) for handling this, but getting blocks to
work well needs coordination between PGE and the compiler language. In essence,
when PGE encounters a code block it needs to hand off to the target language's
compiler to parse to the end of the code block, and get back from the compiler
the length of the block thus parsed.</p>
<p><a href='http://groups.google.com/groups?threadm=198c873805070414191b878a4d@mail.gmail.com' target='_blank'>groups.google.com</a></p>
<a name='Possible bug calculating denominators'></a><h2>Possible bug calculating denominators</h2>
<p>Curtis Rawls posted a fragment of code that seems to break Inc's
<code>computed_denominators</code> algorithm. Leo wasn't surprised that there were
probably bugs in that part of IMCC, which was contributed by Angel Faus who no
longer seems to be participating in Parrot development. Which means it's not
been maintained for a while for lack of tuits. Anyone with an appropriate
supply of tuits is welcome (nay encouraged) to take it on.</p>
<p><a href='http://groups.google.com/groups?threadm=45ec99fc05070423504732f4fd@mail.gmail.com' target='_blank'>groups.google.com</a></p>
<a name='Meanwhile, in perl6-language'></a><h1>Meanwhile, in perl6-language</h1>
<a name='Type variables vs. type literals'></a><h2>Type variables vs. type literals</h2>
<p>Autrijus had a question about the difference between</p>
<pre>    sub (::T $x, ::T $y) {...}</pre>
<p>and</p>
<pre>    sub (T $x, T $y) {...}</pre>
<p>Larry answered about 4 times, mulling over various options. It's times like
this that I'm reminded why it's worth following the list in detail rather than
reading the summaries -- it's good to see Larry thinking aloud, considering
all sorts of (seemingly) wacky options and getting feedback.</p>
<p><a href='http://groups.google.com/groups?threadm=20050630012510.GB22695@aut.dyndns.org' target='_blank'>groups.google.com</a></p>
<a name='Mr Clean vs. Perl 6'></a><h2>Mr Clean vs. Perl 6</h2>
<p>Yuval Kogman had some comments about fascism, strong (but I think he meant
static) typing, cleaning products, Perl 6 and type inferencing. Stephane
Payrard hoped that &quot;Perl6 could become the playground of type theory
searchers.&quot; (To which I can only respond with a highly personal &quot;Ick!&quot;)</p>
<p><a href='http://groups.google.com/groups?threadm=20050630021756.GB23213@woobling.org' target='_blank'>groups.google.com</a></p>
<a name='Documentation trait / Docstring equivalent'></a><h2>Documentation trait / Docstring equivalent</h2>
<p>The Platypus (aka David Formosa) wondered if documentation traits on subs would
be useful. The first to hope that it would be was chromatic, commenting that
it's a shame for Perl 6 to throw away potentially useful data recklessly. Larry
commented that he always cringes when he hears &quot;the documentation&quot; as if it's
the only thing. Again, Larry's thinking aloud on this subject is well worth
your time.</p>
<p><a href='http://groups.google.com/groups?threadm=slrndc6t2r.1v7.dformosa@dformosa.zeta.org.au' target='_blank'>groups.google.com</a></p>
<a name='SMD is for weenies'></a><h2>SMD is for weenies</h2>
<p>So says Yuval Kogman, and who are we to doubt him? Yuval wanted to make
multimethods the default type. Sam Vilain disagreed, pointing up the usefulness
of warnings like &quot;method foo redefined at ...&quot;.</p>
<p><a href='http://groups.google.com/groups?threadm=20050630160746.GC23213@woobling.org' target='_blank'>groups.google.com</a></p>
<a name='DBI2 - The Plan and How You can Help'></a><h2>DBI2 - The Plan and How You can Help</h2>
<p>Tim Bunce outlined his current thinking on how DBI2 is going to work (DBI2's
going to be Perl 6 only) and a 'local' roadmap for the first things that need
doing. He then opened the floor for detailed proposals for what a Perl 6 DBI
API should look like. (I wonder if DBI2's going to be an important enough tool
that it'll want an RFC type process).</p>
<p>I'm glossing over the ensuing discussion -- it's at the stage where, if you're
interested, you're better off joining in directly.</p>
<p><a href='http://groups.google.com/groups?threadm=20050702000602.GA28472@timac.local' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?threadm=p06230900beef5db21767@' target='_blank'>groups.google.com</a>[192.168.1.101]</p>
<a name='Should .assuming always be non mutating?'></a><h2>Should <code>.assuming</code> always be non mutating?</h2>
<p>Ingo Blechschmidt had some suggestions about the behaviour of the currying
method <code>.assuming</code>, arguing that it should always return a new thing and not
alter the state of the underlying object. Larry agreed.</p>
<p><a href='http://groups.google.com/groups?threadm=dabksi$maf$1@sea.gmane.org' target='_blank'>groups.google.com</a></p>
<a name='return() in pointy blocks'></a><h2><code>return()</code> in pointy blocks</h2>
<p>Coo. the pointy block thread returns. The question is, where to?</p>
<p><a href='http://groups.google.com/groups?threadm=42C96B4C.6010105@orthogon.com' target='_blank'>groups.google.com</a></p>
<a name='Time::local'></a><h2>Time::local</h2>
<p>Gaal Yahas announced that he'd added <code>localtime</code> to pugs in order to address
Dave Rolsky's needs when porting the very lovely and worth while DateTime
family of modules. He noted that Perl 6's final time related interfaces were
rather underspecified and had a bunch of questions. The one thing that's
absolutely certain is that the default Perl time API will use subsecond
resolution by default.</p>
<p>I've noticed that, every time you start to discuss how computers handle 'human'
things like time, dates, or writing systems, people often seem to have very
strong and deeply held ideas of the Right Way of doing things, and those Right
Ways are almost all different. Larry's job is probably going to be to work out
the Least Wrong Way. (If you've not heard Dave Rolsky's talks about the
underlying reasons for writing DateTime and the headaches it gave him then I
suggest you seek it out).</p>
<p><a href='http://groups.google.com/groups?threadm=20050705133948.GN10045@sike.forum2.org' target='_blank'>groups.google.com</a></p>
<p><a href='http://perlcast.com/audio/Perlcast_015.mp3' target='_blank'>perlcast.com</a> -- Perlcast 15, including Dave
Rolsky talking about DateTime</p>
<a name='Autogenerated attribute accessor names'></a><h2>Autogenerated attribute accessor names</h2>
<p>MetaModel maker, Stevan Little wondered what to do when attribute names clashed
as in:</p>
<pre>    class Foo { has @.bar; has $.bar; }</pre>
<p>No answers yet.</p>
<p><a href='http://groups.google.com/groups?threadm=200507051726.AA1792803112@mail.iinteractive.com' target='_blank'>groups.google.com</a></p>
<a name='Acknowledgements, adverts, apologies and alliteration'></a><h1>Acknowledgements, adverts, apologies and alliteration</h1>
<p>Summarizing a week is definitely way easier than summarizing a
fortnight.</p>
<p>I'm apologizing in advance for the fact that, for those of you who read this
via the mailing list, some of the links probably don't work yet. The thing is,
the thread links are generated directly from the message-id's because that's
the information I have access to and, so far as I know, Google Groups is the
only archive that has a RESTful search interface that lets me use message-ids
as my key. If you know of an archive site that does this, but is more timely in
its archiving of perl6-language in particular then please let me know and I'll
start using that instead. Ideally it should allow me to directly address as
message complete with its thread context.</p>
<p>If you haven't already done so you really should pay a visit to
<a href='http://geeksunite.org/.' target='_blank'>geeksunite.org</a> For the life of me, I can't see what I would have
done differently in Chip's situation and I'm staggered by what's happened to
him.</p>
<p>Right, back to our standard coda:</p>
<p>If you find these summaries useful or enjoyable, please consider
contributing to the Perl Foundation to help support the development of
Perl.</p>
<p><a href='http://donate.perl-foundation.org/' target='_blank'>donate.perl-foundation.org</a> -- The Perl Foundation</p>
<p><a href='http://dev.perl.org/perl6/' target='_blank'>dev.perl.org</a> -- Perl 6 Development site</p>
<p>Or, you can check out my website. Maybe now I'm back writing stuff I'll start
updating it.</p>
<p><a href='http://www.bofh.org.uk/' target='_blank'>www.bofh.org.uk</a></p>
<p>Vaguely pretty photos by me can be found at:</p>
<p><a href='http://www.flickr.com/photos/pdcawley' target='_blank'>www.flickr.com</a></p>
</div>
